package main

import "fmt"

//闭包
// 闭包时一个函数，这个函数包含了它外部函数的一个变量

// 底层的原理
// 1. 函数可以作为返回值
// 2. 函数内部查找变量的顺序，现在自己内部找，找不到往外层找

func waibu(x int) func(y int)int  {     // 返回的类型应该和内部函数一致

	return func(y int) int {
		return x+y
	}

}

func main() {
	re := waibu(100)

	re2 := re(150)
	fmt.Println(re2)
}